//防抖的自定义指令
import { App } from "vue";
export const debounce = (app: App<Element>) => {
  app.directive('debounce', {   //全局注册一个防抖指令  传给组件即可 v-debounce="handleClick"
    mounted(el, binding) {
      let timer: NodeJS.Timeout | null = null;  // 定义一个定时器
      el.addEventListener('click', () => { 
      });
        el.addEventListener('click', () => {  //给当前元素添加点击事件
            if (timer) {  //如果定时器存在就清除定时器
                clearTimeout(timer);
            }
            timer = setTimeout(() => {  //设置定时器
                binding.value();  //执行传入的函数
            }, 1000); // 1秒内再次点击就不会执行
        });
    }
  });
  
};
export default {
  debounce
}; 